package 差分与前缀和;

import java.util.Arrays;
import java.util.Scanner;

//大学里到树木要打药
//        题目描述
//教室外有棵树(树的编号从0~N-1)，根据不同的位置和
//树种，学校要对其上不同的药。
//因为树的排列成线性，且非常长，我们可以将它们看作一条直线给他
//们编号。
//对于树的药是成区间分布，比如3~5号的树靠近下水道，所以他
//们要用驱蚊虫的药，20~26 号的树，他们排水不好，容易涝所以
//要给他们用点促进根系的药···诸如此类。
//每种不同的药要花不同的钱
//现在已知共有 M个这样的区间，并且给你每个区间花的钱，问最后
//        这些树木要花多少药费
//输入描述
//每组输入的第一行有两个整数N和M。代表马路的共计多少棵
//树，M 代表区间的数目，N和M之间用一个空格隔开
//接下来的 M 行每行包含三个不同的整数，用一个空格隔开，分别表
//示一个区域的起始点L和终止点 R的坐标，以及花费
//1<L<R<N<106,1<M <105，保证花费总和不超过
//int 范围。
//500 3
//        150 300 4
//        100 200 20
//        470 471 19
public class 大学里的树木要打药 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int m = scanner.nextInt();

        //树木
        int[] diff = new int[n + 1];
        while (m > 0) {
            int l = scanner.nextInt();
            int r = scanner.nextInt();
            int num = scanner.nextInt();
            diff[l] += num;
            diff[r + 1] -= num;
            m--;
        }

        for (int i = 1; i < diff.length; i++) {
            diff[i] = diff[i] + diff[i - 1];
        }
        int count = 0;
        System.out.println(Arrays.toString(diff));
        for (int i = 1; i < diff.length; i++) {
            count += diff[i];
        }
        System.out.println(count);
    }
}
